package com.eairlv.share.auto.entity.bo;

import com.eairlv.share.auto.entity.po.enums.ShareWay;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @author lv
 * @create 2018-07-23 11:26
 * @desc
 **/
@Data
@ApiModel("分片规则表单")
public class ShareTableForm {

    @ApiModelProperty("分片规则表ID")
    private Integer id;

    @ApiModelProperty("检查周期，单位毫秒：如果为0，进行自动分表的检查更新")
    private Integer checkInterval;

    @ApiModelProperty("模板表表名")
    private String templateTableName;

    @ApiModelProperty("模板表分区字段名")
    private String templatePartitionField;

    @ApiModelProperty("分表时间类型：YEAR | MONTH | DAY")
    private ShareWay shareTableWay;

    @ApiModelProperty("分表间隔：例shareTableWay=MONTH，shareTableInterval=2，即每两个月进行一次分表")
    private Integer shareTableInterval;

    @ApiModelProperty("预先生成含间隔的分表数：例shareTableWay=MONTH，shareTableInterval=2，shareTableAdvance=3，即每两个月进行一次分表，提前生成可以装载6个月数据的3个表")
    private Integer shareTableAdvance;

    @ApiModelProperty("分表起始时间，如果为空，默认使用当前时间")
    private Long shareTableBegin;

    @ApiModelProperty("分区时间类型：MONTH | DAY | HOUR，分区的时间类型必须小于分表的时间类型<强制类型检查>，支持跨类型")
    private ShareWay sharePartitionWay;

    @ApiModelProperty("分区间隔：例shareTableWay=MONTH，shareTableInterval=2，sharePartitionWay=DAY，sharePartitionInterval=2，即每两个月进行一次分表，每个表每两天进行一个分区")
    private Integer sharePartitionInterval;
}
